package model;

import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintStream;
import java.util.ArrayList;

/**
 *
 * @author Dustin
 */
public class Generator {

    /**
     * Genereerd een total aantal getallen tussen 0 en maxNumber
     * @param maxNumber
     * @param total
     * @return
     */
    public int[] generate(int maxNumber, int total) {
        int[] numbers = new int[total];
        for(int i = 0; i < total; i ++) {
            numbers[i] = (int) (Math.random() * maxNumber);
        }
        return numbers;
    }

    /**
     * Schrijft het meegegeven array uit naar bestand met naam fileName
     * @param fileName
     * @param n
     */
    public void write(String fileName, int[] n) {
        try {
            PrintStream p = new PrintStream(new FileOutputStream(fileName));
            for(int i = 0; i < n.length; i++) {
                p.println(n[i]);
                p.flush();
            }
            p.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

    /**
     * Leest getallen uit meegegeven bestand en schrijft deze geeft deze terug als array
     * @param fileName
     * @return
     */
    public int[] read(String fileName) {
        ArrayList<Integer> dataList = new ArrayList<Integer>();
        int[] data = null;
        try {
            BufferedReader input = new BufferedReader(new FileReader(fileName));
            String readLine = null;
            while((readLine = input.readLine()) != null) {
                dataList.add(Integer.parseInt(readLine));
            }

            data = new int[dataList.size()];
            for(int i = 0; i < dataList.size(); i++) {
                data[i] = dataList.get(i);
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return data;
    }
}
